package com.baizhi.method;

public class MethodDemo02 {
    public static void main(String[] args) {

        //我养了很多的宠物
        //声明一个Pet类型的数组，数组名是pets，数组长度是5,数组中每一个元素都是Pet 类型， Pet是引用数据类型
        // 想要给每一个元素赋值,需要通过new 关键字来创建对象
        Pet[] pets = new Pet[6];

        pets[0] = new Cat(); //向上造型
        pets[1] = new Dog();
        pets[2] = new Fish();
        pets[3] = new Fish();
        pets[4] = new Dog();
        pets[5] = new Cat();

        //现在我需要给我所有的宠物喂食物
//        for (int i = 0; i < pets.length; i++) {
//            pets[i].eat();
//        }

        //我现在随便领了一直宠物，我想看他展示它的技能
        for (int i = 0; i < pets.length; i++) {
            //先判断这个宠物到底是猫还是狗，根据相同的数据类型进行强转
            //instanceof关键字判断引用到底是什么数据类型
            if(pets[i] instanceof Cat){
                Cat c = (Cat)pets[i];
                c.catchMouse();
            }else if(pets[i] instanceof Dog){
                Dog d = (Dog) pets[i];
                d.bark();
            }else if(pets[i] instanceof Fish){
                Fish f = (Fish) pets[i];
                f.swiming();
            }
        }

    }
}
